home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 16 / tsred2.zip / REPTAB.PAS < prev   
Pascal/Delphi Source File  |  1987-04-03  |  1KB  |  65 lines

  1. {$U+}
  2. const
  3.   tab = 9;
  4.   tabch = #9;
  5.  
  6. type
  7.   str255 = string[255];
  8.   link = ^object;
  9.   object = record
  10.              next : link;
  11.              data : str255;
  12.            end;
  13.  
  14. var
  15.   fn : text;
  16.   start,line,tmp : link;
  17.   i,j,k,code,tabpos : integer;
  18.   tmpstr : string[30];
  19.  
  20. begin
  21.   new(start);
  22.   start^.next := nil;
  23.   start^.data := '';
  24.   line := start;
  25.   assign(fn,paramstr(1));
  26.   i := 0;
  27.   val(paramstr(2),i,code);
  28.   if (code <> 0) or (i = 0) then
  29.     i := 8;
  30.   {$I-}
  31.   reset(fn);
  32.   {$I+}
  33.   if IOResult = 0 then
  34.   begin
  35.     repeat
  36.       tmp := line;
  37.       new(line);
  38.       line^.next := nil;
  39.       tmp^.next := line;
  40.       readln(fn,line^.data);
  41.     until eof(fn);
  42.     close(fn);
  43.     rewrite(fn);
  44.     line := start^.next;
  45.     while line <> nil do
  46.     begin
  47.       tabpos := pos(tabch,line^.data);
  48.       while (tabpos <> 0) and (length(line^.data) <> 0) do
  49.       begin
  50.         tmpstr := '';
  51.         delete(line^.data,tabpos,1);
  52.         j := i - (tabpos mod i) + 1;
  53.         for k := 1 to j do
  54.           insert(' ',line^.data,tabpos);
  55.         tabpos := pos(tabch,line^.data);
  56.       end;
  57.       writeln(fn,line^.data);
  58.       line := line^.next;
  59.     end;
  60.     close(fn);
  61.   end
  62.   else
  63.     writeln('FILE NOT FOUND');
  64. end.
  65.